﻿
 namespace Needle.DevToolkit.Traits
{
    public interface IItem
    {

        void Accept(IItemVisitor visitor);

        T GetTrait<T>() where T : class;
        bool HasTrait<T>() where T : class;
        bool TryGetTrait<T>(out T trait) where T : class;
    }
}
